home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1998 November / Freeware November 1998.img / dist / fw_tcp_wrappers.idb / usr / freeware / catman / a_man / cat8 / tcpd.Z / tcpd
Text File  |  1998-10-27  |  9KB  |  265 lines

  1.  
  2.  
  3.  
  4.      TTTTCCCCPPPPDDDD((((8888))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               TTTTCCCCPPPPDDDD((((8888))))
  5.  
  6.  
  7.  
  8.      NNNNAAAAMMMMEEEE
  9.       tcpd - access    control    facility for internet services
  10.  
  11.      DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  12.       The _t_c_p_d program can be set up to monitor incoming requests
  13.       for _t_e_l_n_e_t, _f_i_n_g_e_r, _f_t_p, _e_x_e_c, _r_s_h, _r_l_o_g_i_n, _t_f_t_p, _t_a_l_k,
  14.       _c_o_m_s_a_t and other services that have a    one-to-one mapping
  15.       onto executable files.
  16.  
  17.       The program supports both 4.3BSD-style sockets and System
  18.       V.4-style TLI.  Functionality    may be limited when the
  19.       protocol underneath TLI is not an internet protocol.
  20.  
  21.       Operation is as follows: whenever a request for service
  22.       arrives, the _i_n_e_t_d daemon is tricked into running the    _t_c_p_d
  23.       program instead of the desired server. _t_c_p_d logs the request
  24.       and does some    additional checks. When    all is well, _t_c_p_d runs
  25.       the appropriate server program and goes away.
  26.  
  27.       Optional features are: pattern-based access control, client
  28.       username lookups with    the RFC    931 etc. protocol, protection
  29.       against hosts    that pretend to    have someone elses host    name,
  30.       and protection against hosts that pretend to have someone
  31.       elses    network    address.
  32.  
  33.      LLLLOOOOGGGGGGGGIIIINNNNGGGG
  34.       Connections that are monitored by _t_c_p_d are reported through
  35.       the _s_y_s_l_o_g(3)    facility. Each record contains a time stamp,
  36.       the client host name and the name of the requested service.
  37.       The information can be useful    to detect unwanted activities,
  38.       especially when logfile information from several hosts is
  39.       merged.
  40.  
  41.       In order to find out where your logs are going, examine the
  42.       syslog configuration file, usually /etc/syslog.conf.
  43.  
  44.      AAAACCCCCCCCEEEESSSSSSSS CCCCOOOONNNNTTTTRRRROOOOLLLL
  45.       Optionally, _t_c_p_d supports a simple form of access control
  46.       that is based    on pattern matching.  The access-control
  47.       software provides hooks for the execution of shell commands
  48.       when a pattern fires.     For details, see the _h_o_s_t_s__a_c_c_e_s_s(5)
  49.       manual page.
  50.  
  51.      HHHHOOOOSSSSTTTT NNNNAAAAMMMMEEEE VVVVEEEERRRRIIIIFFFFIIIICCCCAAAATTTTIIIIOOOONNNN
  52.       The authentication scheme of some protocols (_r_l_o_g_i_n, _r_s_h)
  53.       relies on host names.    Some implementations believe the host
  54.       name that they get from any random name server; other
  55.       implementations are more careful but use a flawed algorithm.
  56.  
  57.       _t_c_p_d verifies    the client host    name that is returned by the
  58.       address->name    DNS server by looking at the host name and
  59.       address that are returned by the name->address DNS server.
  60.  
  61.  
  62.  
  63.      Page 1                         (printed 10/3/98)
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.      TTTTCCCCPPPPDDDD((((8888))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               TTTTCCCCPPPPDDDD((((8888))))
  71.  
  72.  
  73.  
  74.       If any discrepancy is    detected, _t_c_p_d concludes that it is
  75.       dealing with a host that pretends to have someone elses host
  76.       name.
  77.  
  78.       If the sources are compiled with -DPARANOID, _t_c_p_d will drop
  79.       the connection in case of a host name/address    mismatch.
  80.       Otherwise, the hostname can be matched with the _P_A_R_A_N_O_I_D
  81.       wildcard, after which    suitable action    can be taken.
  82.  
  83.      HHHHOOOOSSSSTTTT AAAADDDDDDDDRRRREEEESSSSSSSS SSSSPPPPOOOOOOOOFFFFIIIINNNNGGGG
  84.       Optionally, _t_c_p_d disables source-routing socket options on
  85.       every    connection that    it deals with. This will take care of
  86.       most attacks from hosts that pretend to have an address that
  87.       belongs to someone elses network. UDP    services do not
  88.       benefit from this protection.    This feature must be turned on
  89.       at compile time.
  90.  
  91.      RRRRFFFFCCCC 999933331111
  92.       When RFC 931 etc. lookups are    enabled    (compile-time option)
  93.       _t_c_p_d will attempt to establish the name of the client    user.
  94.       This will succeed only if the    client host runs an RFC    931-
  95.       compliant daemon.  Client user name lookups will not work
  96.       for datagram-oriented    connections, and may cause noticeable
  97.       delays in the    case of    connections from PCs.
  98.  
  99.      EEEEXXXXAAAAMMMMPPPPLLLLEEEESSSS
  100.       The details of using _t_c_p_d depend on pathname information
  101.       that was compiled into the program.
  102.  
  103.      EEEEXXXXAAAAMMMMPPPPLLLLEEEE 1111
  104.       This example applies when _t_c_p_d expects that the original
  105.       network daemons will be moved    to an "other" place.
  106.  
  107.       In order to monitor access to    the _f_i_n_g_e_r service, move the
  108.       original finger daemon to the    "other"    place and install tcpd
  109.       in the place of the original finger daemon. No changes are
  110.       required to configuration files.
  111.  
  112.            # mkdir /other/place
  113.            # mv /usr/etc/in.fingerd    /other/place
  114.            # cp tcpd /usr/etc/in.fingerd
  115.  
  116.       The example assumes that the network daemons live in
  117.       /usr/etc. On some systems, network daemons live in /usr/sbin
  118.       or in    /usr/libexec, or have no `in.' prefix to their name.
  119.  
  120.      EEEEXXXXAAAAMMMMPPPPLLLLEEEE 2222
  121.       This example applies when _t_c_p_d expects that the network
  122.       daemons are left in their original place.
  123.  
  124.       In order to monitor access to    the _f_i_n_g_e_r service, perform
  125.       the following    edits on the _i_n_e_t_d configuration file (usually
  126.  
  127.  
  128.  
  129.      Page 2                         (printed 10/3/98)
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.      TTTTCCCCPPPPDDDD((((8888))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               TTTTCCCCPPPPDDDD((((8888))))
  137.  
  138.  
  139.  
  140.       /_e_t_c/_i_n_e_t_d._c_o_n_f or /_e_t_c/_i_n_e_t/_i_n_e_t_d._c_o_n_f):
  141.  
  142.            finger  stream  tcp  nowait  nobody  /usr/etc/in.fingerd     in.fingerd
  143.  
  144.       becomes:
  145.  
  146.            finger  stream  tcp  nowait  nobody  /some/where/tcpd     in.fingerd
  147.  
  148.  
  149.       The example assumes that the network daemons live in
  150.       /usr/etc. On some systems, network daemons live in /usr/sbin
  151.       or in    /usr/libexec, the daemons have no `in.'    prefix to
  152.       their    name, or there is no userid field in the inetd
  153.       configuration    file.
  154.  
  155.       Similar changes will be needed for the other services    that
  156.       are to be covered by _t_c_p_d.  Send a `kill -HUP' to the
  157.       _i_n_e_t_d(8) process to make the changes effective. AIX users
  158.       may also have    to execute the `inetimp' command.
  159.  
  160.      EEEEXXXXAAAAMMMMPPPPLLLLEEEE 3333
  161.       In the case of daemons that do not live in a common
  162.       directory ("secret" or otherwise), edit the _i_n_e_t_d
  163.       configuration    file so    that it    specifies an absolute path
  164.       name for the process name field. For example:
  165.  
  166.           ntalk  dgram  udp     wait  root  /some/where/tcpd  /usr/local/lib/ntalkd
  167.  
  168.  
  169.       Only the last    component (ntalkd) of the pathname will    be
  170.       used for access control and logging.
  171.  
  172.      BBBBUUUUGGGGSSSS
  173.       Some UDP (and    RPC) daemons linger around for a while after
  174.       they have finished their work, in case another request comes
  175.       in.  In the inetd configuration file these services are
  176.       registered with the _w_a_i_t option. Only    the request that
  177.       started such a daemon    will be    logged.
  178.  
  179.       The program does not work with RPC services over TCP.    These
  180.       services are registered as _r_p_c/_t_c_p in    the inetd
  181.       configuration    file. The only non-trivial service that    is
  182.       affected by this limitation is _r_e_x_d, which is    used by    the
  183.       _o_n(_1)    command. This is no great loss.     On most systems, _r_e_x_d
  184.       is less secure than a    wildcard in /etc/hosts.equiv.
  185.  
  186.       RPC broadcast    requests (for example: _r_w_a_l_l, _r_u_p, _r_u_s_e_r_s)
  187.       always appear    to come    from the responding host. What happens
  188.       is that the client broadcasts    the request to all _p_o_r_t_m_a_p
  189.       daemons on its network; each _p_o_r_t_m_a_p daemon forwards the
  190.       request to a local daemon. As    far as the _r_w_a_l_l etc.  daemons
  191.       know,    the request comes from the local host.
  192.  
  193.  
  194.  
  195.      Page 3                         (printed 10/3/98)
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.      TTTTCCCCPPPPDDDD((((8888))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               TTTTCCCCPPPPDDDD((((8888))))
  203.  
  204.  
  205.  
  206.      FFFFIIIILLLLEEEESSSS
  207.       The default locations    of the host access control tables are:
  208.  
  209.       /etc/hosts.allow
  210.       /etc/hosts.deny
  211.  
  212.      SSSSEEEEEEEE AAAALLLLSSSSOOOO
  213.       hosts_access(5), format of the tcpd access control tables.
  214.       syslog.conf(5), format of the    syslogd    control    file.
  215.       inetd.conf(5), format    of the inetd control file.
  216.  
  217.      AAAAUUUUTTTTHHHHOOOORRRRSSSS
  218.       Wietse Venema    (wietse@wzv.win.tue.nl),
  219.       Department of    Mathematics and    Computing Science,
  220.       Eindhoven University of Technology
  221.       Den Dolech 2,    P.O. Box 513,
  222.       5600 MB Eindhoven, The Netherlands
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.      Page 4                         (printed 10/3/98)
  262.  
  263.  
  264.  
  265.